bcm-specs

[Specification

/!\ What does APHY WW stand for?

Enable

  1. Unset bit 0x8000 in the APHY All CRS Register PHYRegister 0x29

  2. Set bit 0x1000 in PHYRegister 0x1B

  3. MaskSet PHYRegister 0x82 with mask 0xF0FF and set with 0x300

  4. Set bit 0x80 in RadioRegister 0x9

  5. Set bit 0x10 in RadioRegister 0x13

  6. MaskSet RadioRegister 0x12 with mask 0xFFFC and set with 0x2

  7. Write 0x1FF9 to PHYRegister 0x1C

  8. Mask PHYRegister 0x20 with mask 0xFF0F

  9. If the PHY Revision is < 3

    1. Write 0xF7F to InternalLookupTable 0x3C00 offset 0xC

    2. Write 0xF7F to RadioRegister 0x2

  10. Otherwise
    1. Write 0x7BF to RadioRegister 0x2

  11. Write 0x3ED5 to PHYRegister 0x3ED5

  12. Backup the value of PHYRegister 0x3

  13. MaskSet RadioRegister 0x3 with mask 0xFFF8 and set with 0x5

  14. Set bit 0x0004 in RadioRegister 0x4

  15. Loop 16 times, from 16 to 31
    1. Write the loop position to RadioRegister 0x13

    2. Read the value of PHYRegister 0x7F then AND with 0xFF, if it's 0, break the loop and save the current loop position

    3. If the value of PHYRegister 0x7F is >= 0x80

      1. Subtract it from 0x100
    4. If this value is the least we've found so far, save the loop position
  16. Restore the value of PHYRegister 0x3

  17. Mask RadioRegister 0x4 with mask 0xFFFB

  18. Write the saved loop position to RadioRegister 0x13

  19. Write 0xFFEC to InternalLookupTable 0x4A00 offset 0

  20. Write 0x1E80 to PHYRegister 0xB7

  21. Write 0x1C00 to PHYRegister 0xB6

  22. Write 0x0EC0 to PHYRegister 0xB5

  23. Write 0x00C0 to PHYRegister 0xB2

  24. Write 0x1FFF to PHYRegister 0xB9

  25. MaskSet PHYRegister 0xB8 with mask 0xF000 and set with 0x53

  26. MaskSet PHYRegister 0x61 with mask 0xFE1F and set with 0x120

  27. MaskSet PHYRegister 0x13 with mask 0x0FFF and set with 0x3000

  28. MaskSet PHYRegister 0x14 with mask 0x0FFF and set with 0x3000

  29. Write 0x17 to InternalLookupTable 0x0 offset 0x6

  30. Write 0xF to InternalLookupTable 0x0 offset 0x0

  31. Write 0xF to InternalLookupTable 0x0 offset 0x1

  32. Write 0xF to InternalLookupTable 0x0 offset 0x2

  33. Write 0xF to InternalLookupTable 0x0 offset 0x3

  34. Write 0xF to InternalLookupTable 0x0 offset 0x4

  35. Write 0xF to InternalLookupTable 0x0 offset 0x5

  36. Write 0xE to InternalLookupTable 0x0 offset 0xD

  37. Write 0x11 to InternalLookupTable 0x0 offset 0xE

  38. Write 0x13 to InternalLookupTable 0x0 offset 0xF

  39. Write 0x5030 to PHYRegister 0x33

  40. Set bit 0x8000 in the APHY All CRS Register PHYRegister 0x29

Disable

  1. Unset bit 0x8000 in the APHY All CRS Register PHYRegister 0x29

  2. Mask PHYRegister 0x1B with mask 0xEFFF

  3. MaskSet PHYRegister 0x82 with mask 0xF0FF and set with 0x100

  4. MaskSet RadioRegister 0x9 with mask 0xFF3F and set with 0x40

  5. Set bit 0x8000 in the APHY All CRS Register PHYRegister 0x29


Exported/Archived from the wiki to HTML on 2016-10-27